/* Аргументы в функцию передаются по значению, т.е.
 * при вызове функции для хранения фактических переданных значений
 * создаются временные переменные - ячейки памяти на сегменте STACK.
 * После выхода из функции эти переменные уничтожаются.
 *
*/
#include <iostream>

void increment(int* a) // При вызове появится переменная a с адресом b.
{
    *a = *a + 1;      // Значение по адресу a увеличится на 1.
}                     // Однако, при выходе из функции указатель a уничтожится.

int main()
{
    using namespace std;
    int b = 3;
    
    increment(&b);     // Здесь будет скопирован адрес переменной b.
    cout << b << endl;   // Естественно, вызов функции inc(b) не изменил b.
    
    return 0;
}
